#ifndef SPHERE_HPP
#define SPHERE_HPP
#include "vector.hpp"
#include "ray.hpp"
#include "material.hpp"
#include "object.hpp"
#include <algorithm>
#include <cmath>
#include <iostream>
using namespace std;

class Sphere : public Object {
public:
	Sphere(Material*,const Vector&,const double);
	~Sphere(void);

	Vector get_center(void) const;
	double get_radius(void) const;
	virtual Vector get_normal(const Vector&) const;

	void set_center(const Vector&);
	void set_radius(const double);

	virtual double intersection(const Ray&,Vector&);


private:
	Vector center;
	double radius;
};


#endif
